home *** CD-ROM | disk | FTP | other *** search
-
- GNU CHESS - THINGS TO DO
-
- 5.The routine repetition() is still not correct since it considers
- only where a piece is placed not the type of the piece.
-
- 6.A tournament program to play chess between two different chess
- programs. This could be done by extending xchess so it could play
- two chess programs against each other. If such a beast exsisted we
- could play different versions of gnuchess against each other. And
- calculate ratings for different machines. A nodes/sec - rating table
- would be very nice to have. Also we could test different evaluation
- heuristics against each other.
-
- 7.A chess database to store historical games.
-
- 10.gnuchess does not handle stalemate correctly(is this still true?)
-
- 13.Convert the type of all time variables to time_t.
-
- 18.Check gnuchess compliance with GNU Coding Standards.
-
- 19.Readability of the code can be increased by using these suggested
- types where apropriate instead of just plain short.
-
- typedef enum
- {
- white, black, neutral
- } color_t;
- /* OR */
- typedef short color_t; /* (0..2) */
- typedef enum
- {
- no_piece, pawn, knight, bishop, rook, queen, king, bpawn
- } piece_t;
- /* OR */
- typedef short piece_t; /* (0..7) */
- typedef enum
- {
- a1, a2, a3, a4, a5, a6, a7, a8,
- b1, b2, b3, b4, b5, b6, b7, b8,
- c1, c2, c3, c4, c5, c6, c7, c8,
- d1, d2, d3, d4, d5, d6, d7, d8,
- e1, e2, e3, e4, e5, e6, e7, e8,
- f1, f2, f3, f4, f5, f6, f7, f8,
- g1, g2, g3, g4, g5, g6, g7, g8,
- h1, h2, h3, h4, h5, h6, h7, h8
- } square_t;
- /* OR */
- typedef short square_t; /* (0..63) */
-
- typedef short piececnt_t; /* (0..32) piece count */
- typedef short offset_t; /* (-63..63) distances on the board */
- typedef short score_t; /* (-32768..32767) position scores */
- typedef short boolean_t;
-
- 20.write more documentation
-
- 21.Fix this bug report
- Article 95 in gnu.chess:
- From: campbell@rnd.GBA.NYU.EDU (Bruce Dietrich-Campbell)
- Subject: A Couple of Minor Bugs
- Summary: mate ignored, removing en passant
- Message-ID: <2004@rnd.GBA.NYU.EDU>
- Date: 21 Feb 90 19:41:40 GMT
- Reply-To: campbell@rnd.UUCP (Bruce Dietrich-Campbell)
- Organization: NYU Stern School of Business
- Lines: 43
-
- Good fighting spirit!! Gnuchess fights on even when mated !-)
-
- -------------------------------
- Try the following 8| | |*R | | | |*K | | Board Layout
- moves: |-------------------------------|
- 7| | | | | | R | | R | white black
- white black |-------------------------------|
- 6| | | | | | | | | kg2 kg8
- f5e6 b8e8 |-------------------------------| rh7 rb8
- f7g7 g8f8 5| | | | | | B | | | rf7
- g7g8 f8f7(??) |-------------------------------| bf5
- 4| | | | | | | | |
- That's the way |-------------------------------|
- to fight!! 3| | | | | | | | |
- |-------------------------------|
- 2| | | | | | | K | |
- |-------------------------------|
- 1| | | | | | | | |
- -------------------------------
- a b c d e f g h
-
-
- -------------------------------
- Try the following 8| | | | | | | | | Board Layout:
- moves: |-------------------------------|
- 7| | | | | | | | | white black
- white black |-------------------------------|
- 6| | | | | | | | | ke2 kb2
- c2c4 d4c3 |-------------------------------| pc2 pd4
- 5| | | | | | | | |
- ie. black takes |-------------------------------|
- en passant 4| | | |*P | | | | |
- |-------------------------------|
- Now try the 3| | | | | | | | |
- remove command. |-------------------------------|
- The white pawn 2| |*K | P | | K | | | |
- doesn't reappear. |-------------------------------|
- 1| | | | | | | | |
- -------------------------------
- a b c d e f g h
- .............................................................................
- Bruce Dietrich-Campbell ARPA: campbell@rnd.gba.nyu.edu
- USENET: ...!{uunet,rocky,harvard}!cmcl2!rnd!campbell
-
- Try moving a rook to row and and the undo (it becomes a pawn!!!)
- And also fix undo of promotions when using edit to setup a position.
-
- 22. Regression testing of strength against a bank
- of positions. The regression should compare
- performance between two releases, assess
- solution times, speed in nodes per second,
- accuracy of evaluation, and depth and then
- produce a comparison table, along with a final
- assessment of which version is superior.
-
- 23. Complete rework of the book, eliminating all
- illegal moves, providing a score for each variation and then use
- dither to choose a random move. Support code to enter variations
- based on the score.
-
- 24. An analyse mode, feed gnuchess with a game. gnuchess will
- analyse each posistion in that game giving it`s own principle
- variation and score and a principle variation and score for the
- played move, if they are not the same.
-
- 25. New code structure:
-
- gnuchess.h: As is!
- gnuchess.c: (just the main program) from gnuchess.c
- eval.c: (evaluation routines) from gnuchess.c
- move.c: (move generation) from gnuchess.c
- tran.c: (transposition table) from gnuchess.c
- book.c: (opening book) from *dsp.c and gnuchess.c
- search.c: (move tree search) from gnuchess.c
- dsp.c: (common display routies) from *dsp.c
- nondsp.c: (the non common nondsp routines)from nondsp.c
- uxdsp.c: (the non common uxdsp routines) from uxdsp.c
- nuxdsp.c: (the non common nuxdsp routines)from nuxdsp.c
-
- 26. Better forced mate recogition by adding all check moves to the quiescent
- analyse (this probably means that the KingScan heuristics can be removed)
-
- 27. an empty command line should display the board, to be compatibe with
- unix chess in CHESSTOOL mode.
-
- 28. The CHESSTOOL mode should not be a compile time option but rather an
- option depending on a flag (-c) or if gnuchessr is named chess.
-
-
-
-